package bTree.LeetCode;

public class 两数相加 {
    int path=0;
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        if (l1==null&&l2==null){
            return path==0?null:new ListNode(path);
        }
        if (null==l2){
            int val = l1.val+path;
            path=val/10;
            ListNode listNode = new ListNode(val % 10);
            listNode.next=addTwoNumbers(l1.next,l2);
            return listNode;
        }
        if (null==l1){
            int val = l2.val+path;
            path=val/10;
            ListNode listNode = new ListNode(val % 10);
            listNode.next=addTwoNumbers(l1,l2.next);
            return listNode;
        }
        int val = l1.val + l2.val+path;
        path=val/10;
        ListNode listNode = new ListNode(val % 10);
        listNode.next=addTwoNumbers(l1.next,l2.next);
        return listNode;
    }
}